<?php

/**
 * 数据获取基本类
 * @author Ice iceinto@mallog.com.cn
 */
class BaseModel extends Model {

	/**
	 * 根据标示默认获取数据信息
	 * @param int $id 标示
	 * @param string $fields 字段
	 * @return array
	 * @author Ice  <iceinto@mallog.com.cn>
	 */
	protected function getById($id, $fields = null){
		return $this->field($fields)->find($id);
	}

	/**
	 * 根据标示默认获取数据信息
	 * @param array $map 查询条件
	 * @param string $fields 字段
	 * @return array
	 * @author Ice <iceinto@mallog.com.cn>
	 */
	protected function getByWhere($map, $fields = null){
		return $this->where($map)->field($fields)->find();
	}

	/**
	 * 获取数据列表
	 * @param array $map 查询条件
	 * @param string $limit 分页
	 * @param string $order 排序
	 * @param string $fields 字段
	 * @return array
	 * @author Ice <iceinto@mallog.com.cn>
	 */
	protected function getListByWhere($map, $fields = null, $limit=null, $order=null){
		return $this->where($map)->limit($limit)->order($order)->field($fields)->select();
	}

	/**
	 * 修改数据信息
	 * @param array $map 修改条件
	 * @param array 修改的数据值
	 * @return int
	 * @author Ice <iceinto@mallog.com.cn>
	 */
	public function update($map, $data){
		return $this->where($map)->save($data);
	}

	/**
	 * 返回任务状态说明
	 * 任务状态说明:1等待处理、2进行中、3需求退回、4等待审核、5审核退回、6审核通过、7等待发送、8发送完成
	 * @param int $status
	 * @author ice<iceinto@mallog.com.cn>
	 */
	public function getStatus($status){
		$message['1'] = '等待处理';
		$message['2'] = '已经分配';
		$message['3'] = '等待商场审核';
		$message['100'] = '推送成功';
		if($message[$status]){
			return $message[$status];
		}else{
			return null;
		}
	}

	/**
	 * update status
	 * @param int $id
	 * @param int $status
	 * @author Ice<iceinto@mallog.com.cn>
	 */
	public function updateStatus($id, $status){
		$data = array();
		$data['id'] = $id;
		$data['status'] = $status;
		return $this->save($data);
	}

	/**
	 * 获取当天时间
	 * @author Ice <iceinto@mallog.com.cn>
	 */
	public function getThisDayTime(){
		import("@.ORG.Util.Date");
		$date = new Date();
		$dayTime = $date->format('%Y-%m-%d');
		return strtotime($dayTime);
	}

	/**
	 * 获取当前开始时间和结束时间
	 * @author Ice <iceinto@mallog.com.cn>
	 */
	public function getStartToEndTime(){
		$map = array();
		$nowTime = $this->getThisDayTime();
		$map['end_time'] = array('egt',$nowTime);
		return $map;
	}

	public function getCount($where){
		return $this->where($where)->count();
	}
	protected function getPage($count, $pageSize = 15) {
		import ( "@.ORG.Util.Page" );
		return new Page ( $count, $pageSize );
	}

	protected function getManagedUrl($id, $type = '', $isDate = true) {
		$defaultImages = UPLOAD_URL . 'default.jpg';
		$FileManagedModel = M ( 'FileManaged' . ucwords ( $type ) );
		$map = array ();
		if ($id) {
			$map ['id'] = $id;
			$file = $FileManagedModel->where ( $map )->find ();
			if ($file) {
				if ($type && ! $isDate) {
					return UPLOAD_URL . $type . '/' . $file ['uri'];
				} else if ($type && $isDate) {
					// 解析时间
					$time = strftime ( '%Y/%m/%d', $file ['create_time'] );
					// 返回时间地址
					return UPLOAD_URL . $type . '/' . $time . '/' . $file ['uri'];
				} else {
					return UPLOAD_URL . $file ['uri'];
				}
			}
			return $defaultImages;
		}
		return $defaultImages;
	}

	protected function _after_insert($data,$options) {
	}
	protected function _after_update($data,$options) {
	}
	protected function _after_delete($data,$options) {
	}
}

?>